To start out getting familiar with Qemu, I am installing it into a VirtualBox VM, as I do not at the moment have Linux installed directly on my laptop. I wills tart with an x86 Linux target inside of Qemu to get a feel for things.
  • Does this Qemu inside Virtualbox config meet the CPU VM feature requirements to use VFIO to directly access the "Host" VirtualBox "hardware" directly?

The emulated PPC target conisists of this virtual hardware"
http://wiki.qemu.org/download/qemu-doc.html#QEMU-PowerPC-System-emulator


Some other questions:
  • Does having a PPC system inside Qemu offer any conveniences for debugging? Such as a virtual JTAG debugger sortof thing? (ie. a virtual BDI3000 sort of setup?)
  • How do I add new Qemu "hardware" devices, other than the Macintosh style devices it currently provides? (different IDE, different audio, etc)
  • While Qemu x86 target on x86 host can run full-speed, can PPC target on PPC host do the same? Or do other (not x86/x64) hosts not get the dynamic translation speed benefit, and run at interpreted speeds even on matching target/host architecture?
  • Where does one start in compiling Qemu?
  • What is requried to create a new Qemu target system? (config files, where at, syntax, how do selected virtual devcies get selected, etc. to make up a target "motherboard"?)

My goals are to tinker with hardware device drivers in a PPC OS. At first, due to convenience, I will likely work with an x64 host hardware, but later on I do intend to see this running on PowerPC host hardware as well, with a PowerPC Linux host OS as closely matching the x65 Linux host as possible. Though I tend to use Kubuntu Linux, I am not sure what Linux is available for PowerPC. Once I am comfortable running inside Qemu, this would seem a convenient way to provide some base consistency target system across host platforms. So the guest PPC OS will see something familiar and usable in the Qemu virtual devices (including any I might need to add to the Qemu virtual machine) and thus allow it to function, while I start poking around with the VFIO access to different real hardware.

Command line arguments
http://wiki.qemu.org/download/qemu-doc.html#sec_005finvocation

-vga cirrus
or
-vga vmware


Also consider 440ep as my PowerPC guest CPU

Compiling Qemu (using Ubuntu 14.04 on amd64 host)

Packages I added to get Qemu 2.1.1 (from sources tarball) to .configure cleanly

build-essential
zlib1g-dev
libglibmm-2.4-dev
libtool


libncurses5-dev
libasound2-dev for alsa sound option
libfdt-dev
libgtk-3-dev
libvte-2.90-dev
##libcap-ng-dev for VirtFS (seems to prefer libcap-dev)
libcap-dev for VirtFS
libattr1-dev for VirtFS
libusb-dev for libusb passthrough


My .configure command is:
./configure --prefix=/opt/qemu --enable-modules --audio-drv-list=alsa --enable-gtk --enable-vnc --enable-virtfs --enable-curses --enable-fdt --enable-kvm --enable-tcg-interpreter --enable-system